{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n",
      "decoder: gru_cond\n",
      "decay_c: 0.0\n",
      "patience: 1000\n",
      "max_epochs: 5000\n",
      "dispFreq: 50\n",
      "overwrite: False\n",
      "validFreq: 1000\n",
      "clip_c: 1.0\n",
      "n_words_src: 20000\n",
      "saveto: .pretraining/model_un16_bpe2k_uni_en-zh.npz\n",
      "valid_batch_size: 64\n",
      "n_words: 20000\n",
      "optimizer: adadelta\n",
      "alpha_c: 0.0\n",
      "batch_size: 64\n",
      "encoder: gru\n",
      "lrate: 0.0001\n",
      "valid_datasets: ['/misc/kcgscratch1/ChoGroup/thoma_data/un16/devset.un16.en-zh.en.c0.tok.bpe20k.np', '/misc/kcgscratch1/ChoGroup/thoma_data/un16/devset.un16.en-zh.zh.c0.tok.bpe20k.np']\n",
      "dim: 1028\n",
      "use_dropout: False\n",
      "datasets: ['/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.en.c0.tok.clean.bpe20k.np', '/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.zh.c0.tok.clean.bpe20k.np']\n",
      "dim_word: 512\n",
      "sampleFreq: 99\n",
      "dictionaries: ['/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.en.c0.tok.clean.bpe20k.vocab.pkl', '/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.zh.c0.tok.clean.bpe20k.vocab.pkl']\n",
      "reload_: False\n",
      "maxlen: 50\n",
      "finish_after: 10000000\n",
      "saveFreq: 1000\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAF5CAYAAABeAGpJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XmYXGWd9//3N+kkhMQkECBhCxCiAZQtgbAJLqiMIojo\no7YLKjqjgyDGR8X1J4LjM+MMgii4jKAI2g6CSFRkFdmXIWEnIksgkJCwJCQhIfv9++M+bVeK7k6v\nVafS79d11VVV59x1zrdOKlWfvs99zomUEpIkSWU1qN4FSJIkdcawIkmSSs2wIkmSSs2wIkmSSs2w\nIkmSSs2wIkmSSs2wIkmSSs2wIkmSSs2wIkmSSs2wIkmSSq0UYSUiDo2IGRExLyLWR8TR7bTZPSIu\nj4gXI+KliLgjInaomD8sIs6JiOcjYllEXBIR29T2nUiSpL5WirACjADuAU4AXnGxoojYFbgJeAg4\nDNgTOB1YWdHsLOBI4D1Fm+2AS/u1akmS1O+ibBcyjIj1wDEppRkV01qA1Smlj3bwmlHAc8AHUkqX\nFdMmA7OBA1NKd/Z/5ZIkqT+UpWelQxER5B6TRyLiyohYGBG3R8S7KppNBZqA61onpJQeBuYCB9W0\nYEmS1KdKH1aAbYCRwCnAFcBbgcuA30XEoUWb8eSel6VVr11YzHuFiNg8IqZExOb9U7YkSZumWv+G\nNtViJb3UGqh+n1I6u3h8X0QcDHyaPJalJ/YBbgFmRcRLVfOuBK7q4XIlSdqUHAH8U9W0kcAU4BDg\n1v4uoBHCyvPAWvL4k0qzyRsJYAEwNCJGVfWujCvmtWfn4n5KO/MOA77To2olSRo4dsawAimlNRHx\nv8DkqlmvAZ4sHs8kB5rDybuIWgfYTgBu62DRTwBcdNFF7L777n1ctToyffp0zjzzzHqXMaC4zWvP\nbV57bvPamj17Nh/+8Ieh+C3tb6UIKxExApgERDFpYkTsDSxKKT0F/Cfwm4i4CbgeeDvwTuANACml\npRFxHvC9iFgMLAPOBm7p5EiglQC77747U6a017mi/jB69Gi3d425zWvPbV57bvO6WbnxJr1XirAC\n7EcOIam4nVFMvwA4PqX0+4j4NPBV4PvAw8CxKaXKXpPpwDrgEmAYedzJZ2pTviRJ6i+lCCsppRvY\nyJFJKaVfAL/oZP4q4KTiJkmSNhGNcOiyJEkawAwrqqnm5uZ6lzDguM1rz21ee27zTVvpTrdfKxEx\nBZg5c+ZMB2VJktQNs2bNYurUqQBTU0qz+nt99qxIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRS\nM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xI\nkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSM6xIkqRSG/BhZf36elcgSZI6Y1gxrEiS\nVGqGFcOKJEmlZlgxrEiSVGoDPqykVO8KJElSZwZ8WFm3rt4VSJKkzgz4sGLPiiRJ5Tbgw4o9K5Ik\nlduADyv2rEiSVG6lCCsRcWhEzIiIeRGxPiKO7qTtj4s2n62aPiwizomI5yNiWURcEhHbbGzd9qxI\nklRupQgrwAjgHuAEoMO+joh4N3AAMK+d2WcBRwLvAQ4DtgMu3diK7VmRJKncmupdAEBK6UrgSoCI\niPbaRMT2wPeBI4ArquaNAo4HPpBSuqGY9nFgdkRMSynd2dG6Pc+KJEnlVpaelU4VAeaXwHdTSrPb\naTKVHLyua52QUnoYmAsc1NmyDSuSJJVbQ4QV4MvA6pTSDzuYP76Yv7Rq+sJiXocMK5IklVspdgN1\nJiKmAp8F9u2P5RtWJEkqt9KHFeD1wNbAUxXDWQYD34uIz6WUJgILgKERMaqqd2VcMa9D3/72dM47\nb/QG05qbm2lubu6r+iVJalgtLS20tLRsMG3JkiU1rSFSyQ6HiYj1wDEppRnF8y2AbauaXU0ew/Lz\nlNIjxQDb58gDbC8rXjcZmA0c2N4A24iYAsy85JKZvOc9U/rvDUmStImZNWsWU6dOBZiaUprV3+sr\nRc9KRIwAJgGtXScTI2JvYFFK6SlgcVX7NcCClNIjACmlpRFxHrm3ZTGwDDgbuKWzI4HA3UCSJJVd\nKcIKsB9wPfkcKwk4o5h+AfmQ5GrtdQdNB9YBlwDDyIdCf2ZjKzasSJJUbqUIK8W5Ubp8ZFIxTqV6\n2irgpOLWZYYVSZLKrVEOXe43hhVJksrNsGJYkSSp1AwrhhVJkkrNsGJYkSSp1AwrhhVJkkptwIeV\nkp0TT5IkVRnwYWXdunpXIEmSOjPgw4o9K5IklduADyv2rEiSVG4DPqzYsyJJUrkN+LBiz4okSeU2\n4MOKPSuSJJXbgA8rnmdFkqRyM6wYViRJKjXDimFFkqRSM6wYViRJKjXDimFFkqRSM6wYViRJKjXD\n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\nr71yYH7xxfz/8o1vzCF58uS28Dx6NPzqV20HCYwf3/YHwurVuSd44cL8b3LAAfnf+Kabcg2jRuUD\nFkaOzP8fBw/O9d9zD7zlLXDssbnGsWNzDddeC1/7Wq5t3rxc8/r1+fU33ZTX/apXwamn5td0l2Gl\nRgwrUt/p7K/TlSvzF/yyZflLd8GC3EOwdGn+0t111/yjt+++OfD87W95t9b69Xk309q1ef7y5XlX\n2qBB+Yt7wYLc07J4cf5i3nrrXENTU17WyJF5GX/9a2539NH5B/eWW/KX+aBBefqBB+YfrIUL83Iv\nuSSHsa23zvUNH54Hcg8fnnep7bdf/iF97LH8nubNyz+yjzySd7vdcUde/0svwX335QuK3n137hla\nujS/j4kTc2hYsyb/6KTU1rNy6KF53fffn39Ebr89/7gtXZoDwrBhbT+wU6bkbQX5x3Pu3A23/Zgx\nebfgZZfl59U9ZdC2e3XzzfMP5oMP5nWtXp0D8IgRubZFi/L7aDV+fFtPI7yyV64jw4e3hfU1a9p6\nnV54YcOjAKvfx4sv5sejR+f3ff31G19X6/pad8VWqwwrfaGvljdsWO0uQHveeXD88d1/nWGlRgwr\nkjZlrbur4JXju/pjt0d761u7tm16e7tqWtstX557H1rHq/XWunU5LI4Y8cpxU63XQRsyZMMaql/f\nOmarMli99FIOxzvskO8ffTQHwNWrcxCvXM6qVXndKeW2d96Z398WW+Tgeu21OdzMnZvnjx6dg/OE\nCXl58+blQLzrrvn0D5Mn5zDd1JSXscMOOVS+6lW552ju3Ly7dKut8vJXr849ZRMn5rA3d26e1tTU\n1iu2cGEOpD35PBhWasSwIklSz9Q6rHjVZUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmS\nVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqGFUmSVGqG\nFUmSVGoNEVYi4isRcWdELI2IhRFxWUS8pp12p0XE/IhYERHXRMSketSrjrW0tNS7hAHHbV57bvPa\nc5tv2hoirACHAj8ADgDeAgwBro6I4a0NIuIU4ETgX4BpwHLgqogYWvty1RG/UGrPbV57bvPac5tv\n2prqXUBXpJTeUfk8Ij4GPAtMBW4uJp8MnJ5S+mPR5jhgIXAMcHHNipUkSX2qUXpWqo0BErAIICJ2\n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\nqdT+f/6e2LAzWVn2AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f2d23444810>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pylab inline\n",
    "import pylab as plt\n",
    "import numpy as np\n",
    "import cPickle as pkl\n",
    "\n",
    "# check pretraining progress\n",
    "model  = 'model_un16_bpe2k_uni_en-zh.npz.current'\n",
    "config = pkl.load(open('.pretraining/{}.pkl'.format(model)))\n",
    "for c in config:\n",
    "    print '{}: {}'.format(c, config[c])\n",
    "\n",
    "data   = np.load('.pretraining/{}.npz'.format(model))\n",
    "error  = data['history_errs']\n",
    "\n",
    "plt.plot(error)\n",
    "plt.xlabel('Iterations (x 1000)')\n",
    "plt.ylabel('Valid Error')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n",
      "decoder: gru_cond\n",
      "decay_c: 0.0\n",
      "patience: 1000\n",
      "max_epochs: 5000\n",
      "dispFreq: 50\n",
      "overwrite: False\n",
      "validFreq: 1000\n",
      "clip_c: 1.0\n",
      "n_words_src: 20000\n",
      "saveto: .pretraining/model_un16_bpe2k_uni_zh-en.npz\n",
      "valid_batch_size: 64\n",
      "n_words: 20000\n",
      "optimizer: adadelta\n",
      "alpha_c: 0.0\n",
      "batch_size: 64\n",
      "encoder: gru\n",
      "lrate: 0.0001\n",
      "valid_datasets: ['/misc/kcgscratch1/ChoGroup/thoma_data/un16/devset.un16.en-zh.zh.c0.tok.bpe20k.np', '/misc/kcgscratch1/ChoGroup/thoma_data/un16/devset.un16.en-zh.en.c0.tok.bpe20k.np']\n",
      "dim: 1028\n",
      "use_dropout: False\n",
      "datasets: ['/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.zh.c0.tok.clean.bpe20k.np', '/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.en.c0.tok.clean.bpe20k.np']\n",
      "dim_word: 512\n",
      "sampleFreq: 99\n",
      "dictionaries: ['/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.zh.c0.tok.clean.bpe20k.vocab.pkl', '/misc/kcgscratch1/ChoGroup/thoma_data/un16/train.un16.en-zh.en.c0.tok.clean.bpe20k.vocab.pkl']\n",
      "reload_: False\n",
      "maxlen: 50\n",
      "finish_after: 10000000\n",
      "saveFreq: 1000\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f28980aed90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pylab inline\n",
    "import pylab as plt\n",
    "import numpy as np\n",
    "import cPickle as pkl\n",
    "\n",
    "# check pretraining progress\n",
    "model  = 'model_un16_bpe2k_uni_zh-en.npz.current'\n",
    "config = pkl.load(open('.pretraining/{}.pkl'.format(model)))\n",
    "for c in config:\n",
    "    print '{}: {}'.format(c, config[c])\n",
    "\n",
    "data   = np.load('.pretraining/{}.npz'.format(model))\n",
    "error  = data['history_errs']\n",
    "\n",
    "plt.plot(error)\n",
    "plt.xlabel('Iterations (x 1000)')\n",
    "plt.ylabel('Valid Error')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4]\n"
     ]
    }
   ],
   "source": [
    "import itertools \n",
    "a = [1, 2, 3, 4]\n",
    "b = list(itertools.chain.from_iterable(itertools.repeat(x, 4) for x in a))\n",
    "print b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "c = a + b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "c[:] = [1,2,3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 2, 3]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python X",
   "language": "python",
   "name": "pythonx"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
